package com.auxgroup.hr.front.service.personnal;

import java.util.List;
import java.util.Map;

import com.auxgroup.hr.front.dao.domain.PsCPayslipHdr;
import com.auxgroup.hr.front.dao.domain.PsCPersonalData;
import com.auxgroup.hr.front.dao.domain.PsCPyCompVw;
import com.auxgroup.hr.front.dao.domain.PsCPyModVw;
import com.auxgroup.hr.front.dao.domain.Psoprdefn;

/**
 * 个人信息表
 * 
 * @version 创建时间：180523
 * @author wangchangyun
 *
 */
public interface PersonalDataService {
	/**
	 * 获取个人信息表
	 * 
	 * @param PsCPersonalInfoClass
	 * @return
	 */
	PsCPersonalData getPersonalData(String emplid);

	/**
	 * 保存
	 * 
	 * @param PsCPersonalData
	 * @return
	 */
	PsCPersonalData save(PsCPersonalData PersonalData);

	/**
	 * 删除
	 * 
	 * @param personalInfo
	 * @return
	 */
	Boolean delete(String emplid);

	/**
	 * 获取全部PsCPersonalData
	 * 
	 * @param emplId
	 * @return
	 */
	List<PsCPersonalData> getAll();
	
	
	/**
	 * 根据登录ID获取用户信息
	 * @param oprid
	 * @return
	 */
	Psoprdefn getOprdefn(String oprid);

	/**
	 * 登陆、返回成功或失败
	 * @param emplid
	 * @param pwd
	 * @return
	 */
	boolean loginPayroll(String emplid, String pwd);
	
	/**
	 * 获取下属薪酬信息
	 * @param emplid
	 * @return
	 */
	PsCPyCompVw getPyComp(String emplid);
	
	/**
	 * 获取下属的历史调薪明细
	 * @param emplid
	 * @return
	 */
	List<PsCPyModVw> getPyMods(String emplid);
	
	/**
	 * 获取假期剩余天数
	 * @param emplid
	 * @return
	 */
	Map<String, String> getLeavebalInfo(String emplid);


	/**
	 * 查看是否有工资查询权限
	 * @param oprid
	 * @return
	 */
	boolean hasPaySlipPermission(String oprid);
	/**
	 * 查询个人工资单数据
	 * @param emplid
	 * @param year
	 * @return
	 */
	List<PsCPayslipHdr> getPaySlip(String emplid,String year,String calrunid);
	
	
	/**
	 * 构建工资单明细数据
	 * @param paySlip
	 * @return
	 */
	List<Map<String, Object>> buildSlips(PsCPayslipHdr paySlip);


	/**
	 * 获取薪资备注
	 * @param calPrdId 期间ID
	 * @param emplid 员工ID
	 * @param runType 运行类别
	 * @return
	 */
	String getSalaryDescr(String calPrdId, String emplid, String runType);
}
